<?xml version="1.0"?>
<doc>
    <assembly>
        <name>AForge.Robotics.TeRK</name>
    </assembly>
    <members>
        <member name="T:AForge.Robotics.TeRK.Qwerk">
            <summary>
            Manipulation of Qwerk robotics board.
            </summary>
            
            <remarks>
            <para>The class allows to manipulate with Qwerk robotics board developed by
            <a href="http://www.charmedlabs.com/">Charmed Labs</a> and supported by
            <a href="http://www.terk.ri.cmu.edu/">TeRK project</a>. Using this class it is
            possible to get access to different Qwerk's services, like digital inputs and outputs, 
            motors and servos, analog inputs, on-board LEDs, video camera, etc.</para>
            
            <para><img src="img/robotics/qwerk_board.jpg" width="192" height="201" /></para>
            
            <para><note>Since TeRK project, which is the software core of Qwerk board, is
            based on <a href="http://www.zeroc.com/ice.html">Internet Communication Engine (ICE)</a>,
            the ICE runtime should be installed in order to use Qwerk classes.</note></para>
            
            <para>Sample usage:</para>
            <code>
            Qwerk qwerk = new Qwerk( );
            // connect to Qwerk
            qwerk.Connect( "192.168.0.5" );
            // turn off all on-board LEDs
            qwerk.GetLedsService( ).SetLedsState( Qwerk.LedState.Off );
            // get digital output service
            Qwerk.DigitalOut outputs = qwerk.GetDigitalOutService( );
            // set all digital outputs to disabled state
            outputs.SetOutputs( false );
            // enable zero output
            outputs.SetOutput( 0, true );
            // get state of all analog inputs
            short[] inputs = qwerk.GetAnalogInService( ).GetInputs( );
            // get state of all digital inputs
            bool[] inputs = qwerk.GetDigitalInService( ).GetInputs( );
            </code>
            </remarks>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:AForge.Robotics.TeRK.Qwerk"/> class.
            </summary>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Connect(System.String)">
            <summary>
            Connect to Qwerk.
            </summary>
            
            <param name="hostAddress">Qwerk's address or host name to connect to.</param>
            
            <exception cref="T:AForge.ConnectionFailedException">Failed connecting to Qwerk.</exception>
            <exception cref="T:AForge.Robotics.TeRK.ServiceAccessFailedException">Failed accessing to the requested service,
            which may be due to the fact that something is wrong with Qwerk device or connection
            was initiated not with Qwerk.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Disconnect">
            <summary>
            Disconnect from Qwerk device.
            </summary>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.GetLedsService">
            <summary>
            Get Qwerk's LEDs service.
            </summary>
            
            <returns>Returns Qwerk's LEDs service.</returns>
            
            <remarks>For the list of possible exceptions, see documentation to
            <see cref="M:AForge.Robotics.TeRK.Qwerk.Leds.#ctor(AForge.Robotics.TeRK.Qwerk)"/>.</remarks>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.GetDigitalOutService">
            <summary>
            Get Qwerk's digital outputs service.
            </summary>
            
            <returns>Returns Qwerk's digital outputs service.</returns>
            
            <remarks>For the list of possible exceptions, see documentation to
            <see cref="M:AForge.Robotics.TeRK.Qwerk.DigitalOut.#ctor(AForge.Robotics.TeRK.Qwerk)"/>.</remarks>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.GetDigitalInService">
            <summary>
            Get Qwerk's digital inputs service.
            </summary>
            
            <returns>Returns Qwerk's digital inputs service.</returns>
            
            <remarks>For the list of possible exceptions, see documentation to
            <see cref="M:AForge.Robotics.TeRK.Qwerk.DigitalIn.#ctor(AForge.Robotics.TeRK.Qwerk)"/>.</remarks>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.GetAnalogInService">
            <summary>
            Get Qwerk's analog inputs service.
            </summary>
            
            <returns>Returns Qwerk's analog inputs service.</returns>
            
            <remarks>For the list of possible exceptions, see documentation to
            <see cref="M:AForge.Robotics.TeRK.Qwerk.AnalogIn.#ctor(AForge.Robotics.TeRK.Qwerk)"/>.</remarks>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.GetVideoService">
            <summary>
            Get Qwerk's video service.
            </summary>
            
            <returns>Returns Qwerk's video service.</returns>
            
            <remarks>For the list of possible exceptions, see documentation to
            <see cref="M:AForge.Robotics.TeRK.Qwerk.Video.#ctor(AForge.Robotics.TeRK.Qwerk)"/>.</remarks>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.GetMotorsService">
            <summary>
            Get Qwerk's motors service.
            </summary>
            
            <returns>Returns Qwerk's motors service.</returns>
            
            <remarks>For the list of possible exceptions, see documentation to
            <see cref="M:AForge.Robotics.TeRK.Qwerk.Motors.#ctor(AForge.Robotics.TeRK.Qwerk)"/>.</remarks>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.GetServosService">
            <summary>
            Get Qwerk's servos service.
            </summary>
            
            <returns>Returns Qwerk's servos service.</returns>
            
            <remarks>For the list of possible exceptions, see documentation to
            <see cref="M:AForge.Robotics.TeRK.Qwerk.Servos.#ctor(AForge.Robotics.TeRK.Qwerk)"/>.</remarks>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.GetPower">
            <summary>
            Get Qwerk's power level.
            </summary>
            
            <returns>Returns Qwerk's power level in millivolts.</returns>
            
            <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="P:AForge.Robotics.TeRK.Qwerk.HostAddress">
             <summary>
             Qwerk's host address.
             </summary>
             
             <remarks><para>The property keeps Qwerk's host address if the class is connected
             to Qwerk board, otherwise it equals to <see langword="null."/>.</para></remarks>
            
        </member>
        <member name="P:AForge.Robotics.TeRK.Qwerk.IsConnected">
            <summary>
            Connection state.
            </summary>
            
            <remarks><para>The property equals to <see langword="true"/> if the class is connected
            to Qwerk board, otherwise it equals to <see langword="false"/>.</para></remarks>
            
        </member>
        <member name="T:AForge.Robotics.TeRK.Qwerk.Servos">
            <summary>
            Provides access to Qwerk's servos' controllers.
            </summary>
            
            <remarks><para>The class allows to manipulate Qwerk's servos. The total number
            of available servos equals to <see cref="F:AForge.Robotics.TeRK.Qwerk.Servos.Count"/>.</para>
            
            <para>Each servo has logical and physical positions, which may or may not be equal.
            Both positions may vary in the [0, 255] range. Physical and logical positions are
            equal, when servo's physical moving bound (range) is set to [0, 255] (see <see cref="M:AForge.Robotics.TeRK.Qwerk.Servos.SetBound(System.Int32,AForge.IntRange)"/>).
            In this case setting servo's logical position with <see cref="M:AForge.Robotics.TeRK.Qwerk.Servos.SetPosition(System.Int32,System.Int32)"/> method results
            in servo's physical moving in the [0, 255] range. However, of physical bound is set
            to [10, 20], for example, then physically the servo will move only in this range. But logical
            position is still may be set in [0, 255] range, which is mapped to physical range.</para>
            
            <para>Sample usage:</para>
            <code>
            // get Qwerk's servos service
            Qwerk.Servos servos = qwerk.GetServosService( );
            // stop all servos
            servos.StopServos( );
            // set 0th servo's bounds
            servos.SetBound( 0, new IntRange( 10, 100 ) );
            // set servo's position
            servos.SetPosition( 0, 50 );
            // ...
            
            // get 0th servo's position
            int currentPosition = servos.GetPosition( 0 );
            </code>
            </remarks>
            
        </member>
        <member name="F:AForge.Robotics.TeRK.Qwerk.Servos.Count">
            <summary>
            Number of available servos' controllers, 16.
            </summary>
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Servos.#ctor(AForge.Robotics.TeRK.Qwerk)">
            <summary>
            Initializes a new instance of the <see cref="T:AForge.Robotics.TeRK.Qwerk.Servos"/> class.
            </summary>
            
            <param name="qwerk">Reference to <see cref="T:AForge.Robotics.TeRK.Qwerk"/> object, which is connected to Qwerk board.</param>
            
            <exception cref="T:AForge.NotConnectedException">The passed reference to <see cref="T:AForge.Robotics.TeRK.Qwerk"/> object is not connected to
            Qwerk board.</exception>
            <exception cref="T:AForge.ConnectionFailedException">Failed connecting to the requested service.</exception>
            <exception cref="T:AForge.Robotics.TeRK.ServiceAccessFailedException">Failed accessing to the requested service.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Servos.StopServo(System.Int32)">
            <summary>
            Stop specified servo.
            </summary>
            
            <param name="servo">Servo to stop, [0, <see cref="F:AForge.Robotics.TeRK.Qwerk.Servos.Count"/>).</param>
            
            <returns>Returns current position of the specified servo.</returns>
            
            <exception cref="T:System.ArgumentOutOfRangeException">Invalid servo is specified.</exception>
            <exception cref="T:AForge.NotConnectedException">No connection to Qwerk or its service.</exception>
            <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Servos.StopServos">
             <summary>
             Stop all servos.
             </summary>
             
             <returns>Returns array of current servos' positions.</returns>
            
             <exception cref="T:AForge.NotConnectedException">No connection to Qwerk or its service.</exception>
             <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Servos.StopServos(System.Boolean[])">
             <summary>
             Stop specified servos.
             </summary>
             
             <param name="mask">Mask array specifying which servos need to stop.</param>
             
             <returns>Returns array of current servos' positions.</returns>
            
             <remarks><para>The <paramref name="mask"/> array specifies
             which Qwerk's servo need to be stopped. If value of the <paramref name="mask"/>
             array is set to <see langword="true"/>, then corresponding servo is stopped.</para>
             </remarks>
            
             <exception cref="T:System.ArgumentException">Incorrect length of <paramref name="mask"/> array.</exception>
             <exception cref="T:AForge.NotConnectedException">No connection to Qwerk or its service.</exception>
             <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Servos.SetPosition(System.Int32,System.Int32)">
            <summary>
            Set position of a single servo.
            </summary>
            
            <param name="servo">Servo to set position for, [0, <see cref="F:AForge.Robotics.TeRK.Qwerk.Servos.Count"/>).</param>
            <param name="position">Position to set for the specified servo, [0, 255].</param>
            
            <returns>Returns current position of the specified servo.</returns>
            
            <remarks><para>The method sets position of single Qwerk's servo, which index is
            specified. It is preferred to use <see cref="M:AForge.Robotics.TeRK.Qwerk.Servos.SetPositions(System.Boolean[],System.Int32[])"/> for setting positions
            of multiple servos, which does it at once.</para></remarks>
            
            <exception cref="T:System.ArgumentOutOfRangeException">Invalid servo is specified.</exception>
            <exception cref="T:AForge.NotConnectedException">No connection to Qwerk or its service.</exception>
            <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Servos.SetPositions(System.Boolean[],System.Int32[])">
             <summary>
             Set positions of specified servos.
             </summary>
             
             <param name="mask">Mask array specifying which servos need to be set.</param>
             <param name="positions">Array of servos' positions to set. Each position is in [0, 255] range.</param>
             
             <returns>Returns array of current servos' positions.</returns>
            
             <remarks><para>The <paramref name="mask"/> and <paramref name="positions"/> arrays specify
             which Qwerk's servo's state should be updated. If value of the <paramref name="mask"/>
             array is set to <see langword="true"/>, then corresponding servo's state is changed to the state,
             which is specified in <paramref name="positions"/> array.</para>
             </remarks>
            
             <exception cref="T:System.ArgumentException">Incorrect length of <paramref name="mask"/> or
             <paramref name="positions"/> array.</exception>
             <exception cref="T:AForge.NotConnectedException">No connection to Qwerk or its service.</exception>
             <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Servos.GetPosition(System.Int32)">
            <summary>
            Get current position of a single servo.
            </summary>
            
            <param name="servo">Servo to get position for, [0, <see cref="F:AForge.Robotics.TeRK.Qwerk.Servos.Count"/>).</param>
            
            <returns>Returns current position of the specified servo.</returns>
            
            <exception cref="T:System.ArgumentOutOfRangeException">Invalid servo is specified.</exception>
            <exception cref="T:AForge.NotConnectedException">No connection to Qwerk or its service.</exception>
            <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Servos.GetPositions">
            <summary>
            Get current positions of all servos.
            </summary>
            
            <returns>Returns array of current servos' positions.</returns>
            
            <exception cref="T:AForge.NotConnectedException">No connection to Qwerk or its service.</exception>
            <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Servos.SetBound(System.Int32,AForge.IntRange)">
            <summary>
            Set bounds for the specified servo.
            </summary>
            
            <param name="servo">Servo to set bounds for, [0, <see cref="F:AForge.Robotics.TeRK.Qwerk.Servos.Count"/>).</param>
            <param name="bound">Bounds to set for the specified servo.</param>
            
            <remarks><para>The method sets servo's physical bounds in which it may move.
            See documentation to <see cref="T:AForge.Robotics.TeRK.Qwerk.Servos"/> for clarification.</para></remarks>
            
            <exception cref="T:System.ArgumentOutOfRangeException">Invalid servo is specified.</exception>
            <exception cref="T:AForge.NotConnectedException">No connection to Qwerk or its service.</exception>
            <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Servos.SetBounds(System.Boolean[],AForge.IntRange[])">
             <summary>
             Set bounds for specified servos.
             </summary>
             
             <param name="mask">Mask array specifying which servos need to be set.</param>
             <param name="bounds">Array of servos' bounds. Each bound may be in [0, 255] range.</param>
            
             <remarks><para>The method sets servos' physical bounds in which they may move.
             See documentation to <see cref="T:AForge.Robotics.TeRK.Qwerk.Servos"/> for clarification.</para></remarks>
             
             <exception cref="T:System.ArgumentException">Incorrect length of <paramref name="mask"/>,
             or <paramref name="bounds"/> array.</exception>
             <exception cref="T:AForge.NotConnectedException">No connection to Qwerk or its service.</exception>
             <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
             
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Servos.GetBound(System.Int32)">
            <summary>
            Get bounds for the specified servo.
            </summary>
            
            <param name="servo">Servo to get bounds for, [0, <see cref="F:AForge.Robotics.TeRK.Qwerk.Servos.Count"/>).</param>
            
            <returns>Returns configured bounds of the specified servo.</returns>
            
            <exception cref="T:System.ArgumentOutOfRangeException">Invalid servo is specified.</exception>
            <exception cref="T:AForge.NotConnectedException">No connection to Qwerk or its service.</exception>
            <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Servos.GetBounds">
            <summary>
            Get bounds of all servos.
            </summary>
            
            <returns>Returns array of configured servos' bounds.</returns>
            
            <exception cref="T:AForge.NotConnectedException">No connection to Qwerk or its service.</exception>
            <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="T:AForge.Robotics.TeRK.Qwerk.Video">
            <summary>
            Provides access to web camera connected to Qwerk.
            </summary>
            
            <remarks><para>The class allows to start Qwerk's camera and continuously receive
            frames from it. The class creates background thread to poll Qwerk's camera and provides
            them through <see cref="E:AForge.Robotics.TeRK.Qwerk.Video.NewFrame"/> event. The video frame rate can be configured
            using <see cref="P:AForge.Robotics.TeRK.Qwerk.Video.FrameInterval"/> property, which sets time interval between frames.</para>
            
            <para>Sample usage:</para>
            <code>
            // get Qwerk's video service
            Qwerk.Video video = qwerk.GetVideoService( );
            // set NewFrame event handler
            video.NewFrame += new NewFrameEventHandler( video_NewFrame );
            // start the video source
            video.Start( );
            // ...
            // signal to stop
            video.SignalToStop( );
            // ...
            
            private void video_NewFrame( object sender, NewFrameEventArgs eventArgs )
            {
                // get new frame
                Bitmap bitmap = eventArgs.Frame;
                // process the frame
            }
            </code>
            </remarks>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Video.#ctor(AForge.Robotics.TeRK.Qwerk)">
            <summary>
            Initializes a new instance of the <see cref="T:AForge.Robotics.TeRK.Qwerk.Video"/> class.
            </summary>
            
            <param name="qwerk">Reference to <see cref="T:AForge.Robotics.TeRK.Qwerk"/> object, which is connected to Qwerk board.</param>
            
            <exception cref="T:AForge.NotConnectedException">The passed reference to <see cref="T:AForge.Robotics.TeRK.Qwerk"/> object is not connected to
            Qwerk board.</exception>
            <exception cref="T:AForge.ConnectionFailedException">Failed connecting to the requested service.</exception>
            <exception cref="T:AForge.Robotics.TeRK.ServiceAccessFailedException">Failed accessing to the requested service.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Video.Start">
            <summary>
            Start video source.
            </summary>
            
            <remarks>Starts video source and return execution to caller. Video source
            object creates background thread and notifies about new frames with the
            help of <see cref="E:AForge.Robotics.TeRK.Qwerk.Video.NewFrame"/> event.</remarks>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Video.SignalToStop">
            <summary>
            Signal video source to stop its work.
            </summary>
            
            <remarks>Signals video source to stop its background thread, stop to
            provide new frames and free resources.</remarks>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Video.WaitForStop">
            <summary>
            Wait for video source has stopped.
            </summary>
            
            <remarks>Waits for video source stopping after it was signalled to stop using
            <see cref="M:AForge.Robotics.TeRK.Qwerk.Video.SignalToStop"/> method.</remarks>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Video.Stop">
            <summary>
            Stop video source.
            </summary>
            
            <remarks><para>Stops video source aborting its thread.</para>
            
            <para><note>Since the method aborts background thread, its usage is highly not preferred
            and should be done only if there are no other options. The correct way of stopping camera
            is <see cref="M:AForge.Robotics.TeRK.Qwerk.Video.SignalToStop">signaling it stop</see> and then
            <see cref="M:AForge.Robotics.TeRK.Qwerk.Video.WaitForStop">waiting</see> for background thread's completion.</note></para>
            </remarks>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Video.Free">
            <summary>
            Free resource.
            </summary>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Video.WorkerThread">
            <summary>
            Worker thread.
            </summary>
            
        </member>
        <member name="E:AForge.Robotics.TeRK.Qwerk.Video.NewFrame">
            <summary>
            New frame event.
            </summary>
            
            <remarks><para>Notifies clients about new available frame from video source.</para>
            
            <para><note>Since video source may have multiple clients, each client is responsible for
            making a copy (cloning) of the passed video frame, because the video source disposes its
            own original copy after notifying of clients.</note></para>
            </remarks>
            
        </member>
        <member name="E:AForge.Robotics.TeRK.Qwerk.Video.VideoSourceError">
            <summary>
            Video source error event.
            </summary>
            
            <remarks>This event is used to notify clients about any type of errors occurred in
            video source object, for example internal exceptions.</remarks>
            
        </member>
        <member name="E:AForge.Robotics.TeRK.Qwerk.Video.PlayingFinished">
            <summary>
            Video playing finished event.
            </summary>
            
            <remarks><para>This event is used to notify clients that the video playing has finished.</para>
            </remarks>
            
        </member>
        <member name="P:AForge.Robotics.TeRK.Qwerk.Video.FrameInterval">
            <summary>
            Frame interval.
            </summary>
            
            <remarks><para>The property sets the interval in milliseconds betwen frames. If the property is
            set to 100, then the desired frame rate will be 10 frames per second.</para>
            
            <para>Default value is set to <b>0</b> - get new frames as fast as possible.</para>
            </remarks>
            
        </member>
        <member name="P:AForge.Robotics.TeRK.Qwerk.Video.Source">
            <summary>
            Video source string.
            </summary>
            
            <remarks>
            <para>The property keeps connection string, which is used to connect to TeRK's video
            streaming service.</para>
            </remarks>
            
        </member>
        <member name="P:AForge.Robotics.TeRK.Qwerk.Video.FramesReceived">
            <summary>
            Received frames count.
            </summary>
            
            <remarks>Number of frames the video source provided from the moment of the last
            access to the property.
            </remarks>
            
        </member>
        <member name="P:AForge.Robotics.TeRK.Qwerk.Video.BytesReceived">
            <summary>
            Received bytes count.
            </summary>
            
            <remarks>Number of bytes the video source provided from the moment of the last
            access to the property.
            </remarks>
            
        </member>
        <member name="P:AForge.Robotics.TeRK.Qwerk.Video.IsRunning">
            <summary>
            State of the video source.
            </summary>
            
            <remarks>Current state of video source object - running or not.</remarks>
            
        </member>
        <member name="T:AForge.Robotics.TeRK.Qwerk.LedState">
            <summary>
            Enumeration of Qwerk's LEDs' states.
            </summary>
        </member>
        <member name="F:AForge.Robotics.TeRK.Qwerk.LedState.Off">
            <summary>
            LED is off.
            </summary>
        </member>
        <member name="F:AForge.Robotics.TeRK.Qwerk.LedState.On">
            <summary>
            LED is on.
            </summary>
        </member>
        <member name="F:AForge.Robotics.TeRK.Qwerk.LedState.Blinking">
            <summary>
            LES is on and blinking.
            </summary>
        </member>
        <member name="T:AForge.Robotics.TeRK.Qwerk.Leds">
            <summary>
            Provides access to Qwerk's on-board LEDs.
            </summary>
            
            <remarks><para>The class allows to manipulate Qwerk's on-boar LED's. The total number
            of available on-board LEDs equals to <see cref="F:AForge.Robotics.TeRK.Qwerk.Leds.Count"/>.</para>
            
            <para>Sample usage:</para>
            <code>
            // get Qwerk's LEDs service
            Qwerk.Leds leds = qwerk.GetLedsService( );
            // turn off all LEDs
            leds.SetLedsState( Qwerk.LedState.Off );
            // set zero LED to blinking state
            leds.SetLedState( 0, Qwerk.LedState.Blinking );
            // turn on 4th and 5th LEDs
            bool[] mask = new bool[10] {
                false, false, false, false, true,
                true, false, false, false, false };
            Qwerk.LedState[] states = new Qwerk.LedState[10] {
                Qwerk.LedState.Off, Qwerk.LedState.Off, Qwerk.LedState.Off,
                Qwerk.LedState.Off, Qwerk.LedState.On,  Qwerk.LedState.On,
                Qwerk.LedState.Off, Qwerk.LedState.Off, Qwerk.LedState.Off,
                Qwerk.LedState.Off };
            leds.SetLedsState( mask, states );
            </code>
            </remarks>
            
        </member>
        <member name="F:AForge.Robotics.TeRK.Qwerk.Leds.Count">
            <summary>
            Number of available on-board LEDs, 10.
            </summary>
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Leds.#ctor(AForge.Robotics.TeRK.Qwerk)">
            <summary>
            Initializes a new instance of the <see cref="T:AForge.Robotics.TeRK.Qwerk.Leds"/> class.
            </summary>
            
            <param name="qwerk">Reference to <see cref="T:AForge.Robotics.TeRK.Qwerk"/> object, which is connected to Qwerk board.</param>
            
            <exception cref="T:AForge.NotConnectedException">The passed reference to <see cref="T:AForge.Robotics.TeRK.Qwerk"/> object is not connected to
            Qwerk board.</exception>
            <exception cref="T:AForge.ConnectionFailedException">Failed connecting to the requested service.</exception>
            <exception cref="T:AForge.Robotics.TeRK.ServiceAccessFailedException">Failed accessing to the requested service.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Leds.SetLedState(System.Int32,AForge.Robotics.TeRK.Qwerk.LedState)">
            <summary>
            Set state of specified LED.
            </summary>
            
            <param name="led">LED to set state for, [0, <see cref="F:AForge.Robotics.TeRK.Qwerk.Leds.Count"/>).</param>
            <param name="state">LED's state to set.</param>
            
            <remarks><para>The method sets state of one of Qwerk's LEDs, which index is specified.</para></remarks>
            
            <exception cref="T:System.ArgumentOutOfRangeException">Invalid LED is specified.</exception>
            <exception cref="T:AForge.NotConnectedException">No connection to Qwerk or its service.</exception>
            <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Leds.SetLedsState(AForge.Robotics.TeRK.Qwerk.LedState)">
            <summary>
            Set state of all LEDs.
            </summary>
            
            <param name="state">State, which will be set to all LEDs.</param>
            
            <remarks><para>The method sets the same state to all Qwerk's on-board LEDs.</para></remarks>
            
            <exception cref="T:AForge.NotConnectedException">No connection to Qwerk or its service.</exception>
            <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Leds.SetLedsState(System.Boolean[],AForge.Robotics.TeRK.Qwerk.LedState[])">
            <summary>
            Set state of all LEDs.
            </summary>
            
            <param name="ledsMask">Mask array specifying which LED's state need to be set.</param>
            <param name="states">Array of LEDs' states.</param>
            
            <remarks><para>The <paramref name="ledsMask"/> and <paramref name="states"/> arrays specify
            which Qwerk's on-board LED's state should be updated. If value of the <paramref name="ledsMask"/>
            array is set to <see langword="true"/>, then corresponding LED's state is changed to the state,
            which is specified in <paramref name="states"/> array.</para>
            </remarks>
            
            <exception cref="T:System.ArgumentException">Incorrect length of LEDs' masks or states array.</exception>
            <exception cref="T:AForge.NotConnectedException">No connection to Qwerk or its service.</exception>
            <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="T:AForge.Robotics.TeRK.Qwerk.DigitalOut">
            <summary>
            Provides access to Qwerk's digital outputs.
            </summary>
            
            <remarks><para>The class allows to manipulate Qwerk's digital outputs. The total number
            of available digital outputs equals to <see cref="F:AForge.Robotics.TeRK.Qwerk.DigitalOut.Count"/>.</para>
            
            <para>Sample usage:</para>
            <code>
            // get Qwerk's digital outs service
            Qwerk.DigitalOut digitalOuts = qwerk.GetDigitalOutService( );
            // disbale all outputs
            digitalOuts.SetOutputs( false );
            // enable zero output
            digitalOuts.SetOutput( 0, true );
            // enable 2nd and 3rd outputs
            bool[] mask = new bool[4] { false, false, true, true };
            bool[] states = new bool[4] { false, false, true, true };
            digitalOuts.SetOutputs( mask, states );
            </code>
            </remarks>
            
        </member>
        <member name="F:AForge.Robotics.TeRK.Qwerk.DigitalOut.Count">
            <summary>
            Number of available digital outputs, 4.
            </summary>
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.DigitalOut.#ctor(AForge.Robotics.TeRK.Qwerk)">
            <summary>
            Initializes a new instance of the <see cref="T:AForge.Robotics.TeRK.Qwerk.DigitalOut"/> class.
            </summary>
            
            <param name="qwerk">Reference to <see cref="T:AForge.Robotics.TeRK.Qwerk"/> object, which is connected to Qwerk board.</param>
            
            <exception cref="T:AForge.NotConnectedException">The passed reference to <see cref="T:AForge.Robotics.TeRK.Qwerk"/> object is not connected to
            Qwerk board.</exception>
            <exception cref="T:AForge.ConnectionFailedException">Failed connecting to the requested service.</exception>
            <exception cref="T:AForge.Robotics.TeRK.ServiceAccessFailedException">Failed accessing to the requested service.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.DigitalOut.SetOutput(System.Int32,System.Boolean)">
            <summary>
            Set state of specified digital output.
            </summary>
            
            <param name="output">Digital output to state for, [0, <see cref="F:AForge.Robotics.TeRK.Qwerk.DigitalOut.Count"/>).</param>
            <param name="state">Digital output's state to set.</param>
            
            <remarks><para>The method sets state of one of Qwerk's digital outputs, which index is
            specified. The output is either enabled (state is set to <see langword="true"/> or
            disabled otherwise.</para></remarks>
            
            <exception cref="T:System.ArgumentOutOfRangeException">Invalid output is specified.</exception>
            <exception cref="T:AForge.NotConnectedException">No connection to Qwerk or its service.</exception>
            <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.DigitalOut.SetOutputs(System.Boolean)">
            <summary>
            Set state of all digital outputs.
            </summary>
            
            <param name="state">State, which will be set to all digital outputs.</param>
            
            <remarks><para>The method sets the same state to all Qwerk's digital outputs.</para></remarks>
            
            <exception cref="T:AForge.NotConnectedException">No connection to Qwerk or its service.</exception>
            <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.DigitalOut.SetOutputs(System.Boolean[],System.Boolean[])">
            <summary>
            Set state of all digital outputs.
            </summary>
            
            <param name="outpusMask">Mask array specifying which output's state need to be set.</param>
            <param name="states">Array of outputs' states.</param>
            
            <remarks><para>The <paramref name="outpusMask"/> and <paramref name="states"/> arrays specify
            which Qwerk's digital output's state should be updated. If value of the <paramref name="outpusMask"/>
            array is set to <see langword="true"/>, then corresponding output's state is changed to the state,
            which is specified in <paramref name="states"/> array.</para>
            </remarks>
            
            <exception cref="T:System.ArgumentException">Incorrect length of outputs' masks or states array.</exception>
            <exception cref="T:AForge.NotConnectedException">No connection to Qwerk or its service.</exception>
            <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="T:AForge.Robotics.TeRK.Qwerk.Motors">
            <summary>
            Provides access to Qwerk's motors' controllers.
            </summary>
            
            <remarks><para>The class allows to manipulate Qwerk's motors. The total number
            of available motors equals to <see cref="F:AForge.Robotics.TeRK.Qwerk.Motors.Count"/>.</para>
            
            <para>Sample usage:</para>
            <code>
            // get Qwerk's motors service
            Qwerk.Motors motors = qwerk.GetMotorsService( );
            // stop all motors
            motors.StopMotors( );
            // run first motor
            motors.SetMotorVelocity( 0, 10000 );
            </code>
            </remarks>
            
        </member>
        <member name="F:AForge.Robotics.TeRK.Qwerk.Motors.Count">
            <summary>
            Number of available motors' controllers, 4.
            </summary>
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Motors.#ctor(AForge.Robotics.TeRK.Qwerk)">
            <summary>
            Initializes a new instance of the <see cref="T:AForge.Robotics.TeRK.Qwerk.Motors"/> class.
            </summary>
            
            <param name="qwerk">Reference to <see cref="T:AForge.Robotics.TeRK.Qwerk"/> object, which is connected to Qwerk board.</param>
            
            <exception cref="T:AForge.NotConnectedException">The passed reference to <see cref="T:AForge.Robotics.TeRK.Qwerk"/> object is not connected to
            Qwerk board.</exception>
            <exception cref="T:AForge.ConnectionFailedException">Failed connecting to the requested service.</exception>
            <exception cref="T:AForge.Robotics.TeRK.ServiceAccessFailedException">Failed accessing to the requested service.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Motors.StopMotor(System.Int32)">
            <summary>
            Stop specified motor.
            </summary>
            
            <param name="motor">Motor to stop, [0, <see cref="F:AForge.Robotics.TeRK.Qwerk.Motors.Count"/>).</param>
            
            <exception cref="T:System.ArgumentOutOfRangeException">Invalid motor is specified.</exception>
            <exception cref="T:AForge.NotConnectedException">No connection to Qwerk or its service.</exception>
            <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Motors.StopMotors">
            <summary>
            Stop all motors.
            </summary>
            
            <exception cref="T:AForge.NotConnectedException">No connection to Qwerk or its service.</exception>
            <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.Motors.SetMotorVelocity(System.Int32,System.Int32)">
            <summary>
            Set velocity of specified motor.
            </summary>
            
            <param name="motor">Motor to set velocity for, [0, <see cref="F:AForge.Robotics.TeRK.Qwerk.Motors.Count"/>).</param>
            <param name="velocity">Velocity to set.</param>
            
            <remarks><para>The method sets specified motor's velocity, which is measured in
            ticks per second. "Ticks" is a made-up term, which does not depend on specific motor,
            but is an unknown in distance and rotation (see Qwerk documentation for details).</para></remarks>
            
            <exception cref="T:System.ArgumentOutOfRangeException">Invalid motor is specified.</exception>
            <exception cref="T:AForge.NotConnectedException">No connection to Qwerk or its service.</exception>
            <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="T:AForge.Robotics.TeRK.Qwerk.DigitalIn">
            <summary>
            Provides access to Qwerk's digital inputs.
            </summary>
            
            <remarks><para>The class allows to retrieve state of Qwerk's digital inputs. The total
            number of available digital inputs equals to <see cref="F:AForge.Robotics.TeRK.Qwerk.DigitalIn.Count"/>.</para>
            
            <para>Sample usage:</para>
            <code>
            // get Qwerk's digital inputs service
            Qwerk.DigitalIn digitalIns = qwerk.GetDigitalInService( );
            // get state of 0th input
            bool input0 = digitalIns.GetInput( 0 );
            // get state of all inputs
            bool[] inputs = digitalIns.GetInputs( );
            </code>
            </remarks>
            
        </member>
        <member name="F:AForge.Robotics.TeRK.Qwerk.DigitalIn.Count">
            <summary>
            Number of available digital inputs, 4.
            </summary>
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.DigitalIn.#ctor(AForge.Robotics.TeRK.Qwerk)">
            <summary>
            Initializes a new instance of the <see cref="T:AForge.Robotics.TeRK.Qwerk.DigitalIn"/> class.
            </summary>
            
            <param name="qwerk">Reference to <see cref="T:AForge.Robotics.TeRK.Qwerk"/> object, which is connected to Qwerk board.</param>
            
            <exception cref="T:AForge.NotConnectedException">The passed reference to <see cref="T:AForge.Robotics.TeRK.Qwerk"/> object is not connected to
            Qwerk board.</exception>
            <exception cref="T:AForge.ConnectionFailedException">Failed connecting to the requested service.</exception>
            <exception cref="T:AForge.Robotics.TeRK.ServiceAccessFailedException">Failed accessing to the requested service.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.DigitalIn.GetInput(System.Int32)">
            <summary>
            Get state of the specified digital input.
            </summary>
            
            <param name="input">Digital input to get state of, [0, <see cref="F:AForge.Robotics.TeRK.Qwerk.DigitalIn.Count"/>).</param>
            
            <returns>Returns state of the requested input as boolean values - active/inactive.</returns>
            
            <remarks><para>In the case if multiply inputs should be queried, it is much
            preferred to use <see cref="M:AForge.Robotics.TeRK.Qwerk.DigitalIn.GetInputs"/> method, which retrieves state of all
            inputs at once.</para></remarks>
            
            <exception cref="T:System.ArgumentOutOfRangeException">Invalid input is specified.</exception>
            <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.DigitalIn.GetInputs">
            <summary>
            Get state of all available digital inputs.
            </summary>
            
            <returns>Returns state of all digital inputs as boolean values - active/inactive.</returns>
            
            <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="T:AForge.Robotics.TeRK.Qwerk.AnalogIn">
            <summary>
            Provides access to Qwerk's analog inputs.
            </summary>
            
            <remarks><para>The class allows to retrieve state of Qwerk's analog inputs. The total
            number of available analog inputs equals to <see cref="F:AForge.Robotics.TeRK.Qwerk.AnalogIn.Count"/>.</para>
            
            <para>Sample usage:</para>
            <code>
            // get Qwerk's analog inputs service
            Qwerk.AnalogIn analogIns = qwerk.GetAnalogInService( );
            // get state of 0th input
            short input0 = analogIns.GetInput( 0 );
            // get state of all inputs
            short[] inputs = analogIns.GetInputs( );
            </code>
            </remarks>
            
        </member>
        <member name="F:AForge.Robotics.TeRK.Qwerk.AnalogIn.Count">
            <summary>
            Number of available analog inputs, 8.
            </summary>
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.AnalogIn.#ctor(AForge.Robotics.TeRK.Qwerk)">
            <summary>
            Initializes a new instance of the <see cref="T:AForge.Robotics.TeRK.Qwerk.AnalogIn"/> class.
            </summary>
            
            <param name="qwerk">Reference to <see cref="T:AForge.Robotics.TeRK.Qwerk"/> object, which is connected to Qwerk board.</param>
            
            <exception cref="T:AForge.NotConnectedException">The passed reference to <see cref="T:AForge.Robotics.TeRK.Qwerk"/> object is not connected to
            Qwerk board.</exception>
            <exception cref="T:AForge.ConnectionFailedException">Failed connecting to the requested service.</exception>
            <exception cref="T:AForge.Robotics.TeRK.ServiceAccessFailedException">Failed accessing to the requested service.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.AnalogIn.GetInput(System.Int32)">
            <summary>
            Get state of the specified analog input.
            </summary>
            
            <param name="input">Analog input to get state of, [0, <see cref="F:AForge.Robotics.TeRK.Qwerk.AnalogIn.Count"/>).</param>
            
            <returns>Returns state of the requested input measured in milli volts.</returns>
            
            <remarks><para>In the case if multiply inputs should be queried, it is much
            preferred to use <see cref="M:AForge.Robotics.TeRK.Qwerk.AnalogIn.GetInputs"/> method, which retrieves state of all
            inputs at once.</para></remarks>
            
            <exception cref="T:System.ArgumentOutOfRangeException">Invalid input is specified.</exception>
            <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.Qwerk.AnalogIn.GetInputs">
            <summary>
            Get state of all available analog inputs.
            </summary>
            
            <returns>Returns state of all analog inputs measured in milli volts.</returns>
            
            <exception cref="T:AForge.ConnectionLostException">Connestion to Qwerk is lost.</exception>
            
        </member>
        <member name="T:AForge.Robotics.TeRK.ServiceAccessFailedException">
            <summary>
            Service access failed exception.
            </summary>
            
            <remarks><para>The excetion is thrown in the case if the requested service can not
            be accessed or does not exist on the Qwerk's board.</para>
            </remarks>
            
        </member>
        <member name="M:AForge.Robotics.TeRK.ServiceAccessFailedException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:AForge.NotConnectedException"/> class.
            </summary>
            
            <param name="message">Exception's message.</param>
            
        </member>
    </members>
</doc>
